#ifdef	__cplusplus
extern "C" {
#endif

#define ICON_SUCCESS        0
#define ICON_FAILURE        -1

#define MAX_NUMBER_ICONS    50      //!< Numero maximo de icones qe pode ser criado.

    /**
     * @brief Cria um novo icone
     * @param unsigned int x                 Posicao x do icone criado.
     * @param unsigned int y                 Posicao y do icone criado.
     * @param unsigned int image_on          Id da imagem do icone quando selecionado.
     * @param unsigned int image_off         Id da imagem do icone quando deselecionado.
     * @return int                  Retorna o id do icone ou ICON_FAILURE em caso de falha.
     */
    extern int icon_create(unsigned int x, unsigned int y, unsigned char *image_on, unsigned char *image_off);

    extern signed int icon_destroy(signed int iconId);

    /**
     * @brief Desenha o icone.
     * @param int iconId            Id do icone.
     * @return int                  Retorna ICON_SUCCESS ou ICON_FAILURE.
     */
    extern int icon_draw(int iconId);

    /**
     * @brief Seleciona o icone.
     * @param int iconId            Id do icone.
     * @return int                  Retorna ICON_SUCCESS ou ICON_FAILURE.
     */
    extern int icon_select(int iconId);

    /**
     * @brief Deseleciona o icone
     * @param int iconId            Id do icone.
     * @return int                  Retorna ICON_SUCCESS ou ICON_FAILURE.
     */
    extern int icon_unselect(int iconId);

    /**
     * @brief Seta se o icone pode ser visivel ou nao.
     * @param iconId                Id do icone.
     * @param char visible          true (1) ou false (0).
     * @return int                  Retorna ICON_SUCCESS ou ICON_FAILURE.
     */
    extern int icon_setVisible(int iconId, unsigned char visible);

    extern signed int icon_isSelected(signed int iconId);

    /**
     * @brief Obtem a situacao atual do icone (selecionado ou deselecionado).
     * @param iconId                Id do icone.
     * @return int                  Retorna true (1) para selecionado ou false (0) para deselcionado.
     */
    extern int icon_read(int iconId);

#ifdef	__cplusplus
}
#endif
